#ifndef CACHE_H_
#define CACHE_H_
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include "direccionamiento_FAT.h"
#include "archivo_Configuracion.h"

typedef struct b{
int bloque;
char FAT[1024];
int modificado;
}FAT_cache;

FAT_cache CtablaFAT[5];

int inicializarCacheFAT();
int agregarCacheFAT(int,char*);
int actualizarCacheFAT(int);
int reemplazarElementoFAT(FAT_cache);
int buscarFAT(int);


/*---------------------------------------------*/

typedef struct v{
	char contenido[1024];
	int sector;
}vector;

typedef struct vc{
	char nombre[32+1];
	vector* contCache;
	struct vc* ptrSiguiente;
} cache;

typedef cache* ptrCache;

FILE * ptr;
ptrCache laCache;
int cantLugares;

cache inicializarCache(char*);

int eliminarLista(char*);

int agregarEnCache(cache, char*,int);

int buscarEnCache(cache, int);

int actualizarCache(cache, vector, int);

int algReemplazoCache(cache,char*,int);

int agregarLista(cache var);

int comandoSIGUSR1(void);

/*---------------------------------------------*/

typedef struct cl{
char* ruta;
int64_t data;
}cachePath;

cachePath rutasDisco[20];

int actualizarCachePATH(int);
int reemplazarElementoPATH(cachePath);
int buscarPATH(char*);

#endif

